﻿<!--**************************************************************************************

   Toolkit for WPF

   Copyright (C) 2007-2016 Xceed Software Inc.

   This program is provided to you under the terms of the Microsoft Public
   License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license 

   For more features, controls, and fast professional support,
   pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

   Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids

  ************************************************************************************-->
<local:DemoView x:Class="Xceed.Wpf.Toolkit.LiveExplorer.Samples.PropertyGrid.Views.PropertyGridAttributesView"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:Xceed.Wpf.Toolkit.LiveExplorer"
                xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
                xmlns:sys="clr-namespace:System;assembly=mscorlib"
                xmlns:col="clr-namespace:System.Collections;assembly=mscorlib"
                xmlns:v="clr-namespace:Xceed.Wpf.Toolkit.LiveExplorer.Samples.PropertyGrid.Views"
                x:Name="demo"
                VerticalScrollBarVisibility="Disabled"
                Title="Using Attributes">
    <local:DemoView.Description>
        <Paragraph FontSize="14" FontFamily="Segoe">
          This sample expose how you can use Attributes to customize the display of the properties in the PropertyGrid.
           With attributes you can, for each properties, customize their own category, display property, display name, display order, description, editor, editor combox items,
           and expandability (drill down). Here is the list of all supported attributes:
         <LineBreak />
         <LineBreak />
           BrowsableAttribute
         <LineBreak />
           DisplayNameAttribute
         <LineBreak/>
            DescriptionAttribute
         <LineBreak/>
           CategoryAttribute
         <LineBreak/>
           CategoryOrderAttribute
         <LineBreak/>
           EditorAttribute
         <LineBreak/>
           NewItemTypesAttribute
         <LineBreak/>
           ExpandableObjectAttribute
         <LineBreak/>
           ItemsSourceAttribute
         <LineBreak/>
           PropertyOrderAttribute
         <LineBreak/>
           ParenthesizePropertyNameAttribute
         <LineBreak/>
         <LineBreak/>
         Plus edition Only:
         <LineBreak />
         DependsOnAttribute
         <LineBreak/>
         (Not demoed here. See corresponding samples)
         <LineBreak />
         ExpandedCategoryAttribute
         <LineBreak/>
         DefinitionKeyAttribute
         <LineBreak/>
         LocalizedCategoryAttribute
         <LineBreak/>
         LocalizedDisplayNameAttribute
         <LineBreak/>
         LocalizedDescriptionAttribute
      </Paragraph>
    </local:DemoView.Description>

   <Grid>
      <Grid.RowDefinitions>
         <RowDefinition Height="Auto" />
         <RowDefinition Height="*" />
      </Grid.RowDefinitions>

      <StackPanel Grid.Row="0" Margin="10">
         <TextBlock Text="Each property in this PropertyGrid has its own special attribute that applies a different effect when it is displayed." 
                  TextWrapping="Wrap" Margin="5"/>
         <TextBlock Text="Select each property one-by-one and take a look at the description section to learn more about each attribute." 
                  TextWrapping="Wrap" Margin="5"/>         
         <TextBlock Text="All properties define the CategoryAttribute (eg. 'Information','Conections') and the DescriptionAttribute." 
                  TextWrapping="Wrap" Margin="5"/>
         <TextBlock Text="(CLick the XAML and Code tabs to see details.)" 
                    FontStyle="Italic"
                    Margin="0,10,0,0"/>
      </StackPanel>

      <xctk:PropertyGrid Grid.Row="1" x:Name="_propertyGrid" Width="450" MaxHeight="650" Margin="10" 
                         SelectedObject="{Binding}"
                         ShowDescriptionByTooltip="True">
      </xctk:PropertyGrid>      

   </Grid>
</local:DemoView>
